/**
 * 解析路径参数
 */
export function sq(str = window.location.href) {
  const query = {}
  const paramsArr = str.split('?') // 截取?号后的字符串即name=itclanCoder&study=css

  if (paramsArr.length > 1) {
    const params = paramsArr[ 1 ]

    params.split('&').forEach(item => {
      const param = item.split('=')

      query[ param[ 0 ] ] = decodeURIComponent(param[ 1 ])
    })
  }
  return query
}
/**
 * 对象转路由query
 * @param {Boolean} hasMask 是否有问号
 */
export function qs(obj, hasMask = true) {
  let param = hasMask ? '?' : ''

  for (const key in obj) {
    if (obj[ key ] !== undefined && obj[ key ] !== null) {
      param += `${ key }=${ obj[ key ] }&`
    }
  }
  return param.slice(0, -1)
}

/**
 * 复制
 */
export function copyData(data, showToast = true) {
  const clipboardObj = navigator.clipboard

  clipboardObj.writeText(data)
    .then(() => {
      showToast && alert('内容已复制')
    })
    .catch(() => {
      alert('浏览器不兼容')
    })
}

/**
 * 背景动画
 */
export function showBgAnimation(elId) {
  window.particlesJS(elId, {
    'particles': {
      'number': {
        'value': 40,
        'density': {
          'enable': true,
          'value_area': 500
        }
      },
      'color': {
        'value': '#859bf4'
      },
      'shape': {
        'type': 'circle',
        'stroke': {
          'width': 0,
          'color': '#000000'
        },
        'polygon': {
          'nb_sides': 5
        }
      },
      'opacity': {
        'value': 0.5,
        'random': false,
        'anim': {
          'enable': false,
          'speed': 0.1,
          'opacity_min': 0.1,
          'sync': false
        }
      },
      'size': {
        'value': 3,
        'random': true,
        'anim': {
          'enable': false,
          'speed': 10,
          'size_min': 0.1,
          'sync': false
        }
      },
      'line_linked': {
        'enable': true,
        'distance': 150,
        'color': '#a4b4f7',
        'opacity': 0.4,
        'width': 1
      },
      'move': {
        'enable': true,
        'speed': 2,
        'direction': 'none',
        'random': true,
        'straight': false,
        'out_mode': 'out',
        'bounce': false,
        'attract': {
          'enable': false,
          'rotateX': 600,
          'rotateY': 1200
        }
      }
    },
    'interactivity': {
      'detect_on': 'canvas',
      'events': {
        'onhover': {
          'enable': true,
          'mode': 'grab'
        },
        'onclick': {
          'enable': true,
          'mode': 'push'
        },
        'resize': true
      },
      'modes': {
        'grab': {
          'distance': 140,
          'line_linked': {
            'opacity': 1
          }
        },
        'bubble': {
          'distance': 400,
          'size': 40,
          'duration': 2,
          'opacity': 8,
          'speed': 3
        },
        'repulse': {
          'distance': 200,
          'duration': 0.4
        },
        'push': {
          'particles_nb': 4
        },
        'remove': {
          'particles_nb': 2
        }
      }
    },
    'retina_detect': true
  })
}

/**
 * 选择的文件转URL
 */
export function fileToUrl(file) {
  return window.URL.createObjectURL(file)
}
